#pragma once

#include <map>
#include <string>

#include <hge.h>

namespace hny {

	typedef std::map<const std::string, HEFFECT> EffectMap;
	typedef std::map<const std::string, HEFFECT> StreamMap;

	class SoundManager
	{
	public:
		~SoundManager();

		static SoundManager* GetInstance();
		void Destroy();

		void AddEffect(const std::string& file, const std::string& name);
		void AddStream(const std::string& file, const std::string& name);

	private:
		SoundManager();
		SoundManager(const SoundManager&);
		SoundManager& operator= (const SoundManager&);

		static SoundManager* mInstance;

		EffectMap mEffects;
		StreamMap mStreams;
	};
}